Improve code structure, layout, and theming of the project manager #74729
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #74214. Fixes #65734.
Builds on top of changes done in #30735.
The first commit contains a restructuring of the changes done in #30735, to bring them closer to our codestyle:
The second commit addresses #74214 and #65734 directly. It makes sure that the initial theme creation is properly set up, and it moves all the theme item fetching code to the correct notification, so changes can be picked up (not that there should be any, but still, code quality). Some properties were moved to the editor theme.
The third commit reworks the project list structure. While the earlier work in this component factored out some elements into their own control, layout was still generated out of that control and inside of the parent control. And it heavily relied on having access to the private properties of the class (effectively using it as a Node-based struct). So I reworked all of the relevant code and moved all of the layout of the list item component inside of that component, and for the list itself I exposed all the necessary API, cleaning up some weirdness and possible mistakes in the process. Theming was also centralized in the process.
I didn't use the manual theme cache system because, well, this is already a lot and there is probably not a lot of benefit from doing this right now. It can still be implemented in the future, alongside more useful changes to these components, but the current state should suffice as is.
Light mode works now, and that's what's important :)